﻿using System.Collections.Generic;
using DataBaseLayer.Dto;

namespace DataBaseLayer.Abstractions.Interfaces.Services
{
	public interface IGalleriesService
	{
		IEnumerable<GalleryData> GetImageGalleriesByPageNumber(int pageNumber, int countGalleries);

		int GetCountImageGalleries();

		IEnumerable<GalleryData> GetFotoClubGalleriesByPageNumber(int pageNumber, int countGalleries);

		int GetCountFotoClubGalleries();

		GalleryData GetImageGalleryById(int id, int countGalleriesOnPage);

		GalleryData GetFotoClubGalleryById(int id, int countGalleriesOnPage);

		IEnumerable<GalleryData> GetGalleries();

		IEnumerable<GalleryData> GetImageGalleries();

		IEnumerable<GalleryData> GetFotoclubGalleries();

		void CreateGallery(GalleryData entity);

		void UpdateGallery(GalleryData entity);

		void DeleteGallery(int id);

		IEnumerable<ImageData> GetGalleryImagesByGalleryId(int id);

		void UpdateGalleryDefaultImage(int newDefaultImageId, bool isDefaultImage);

		void DeleteImage(int id);

		string GetBigImageNameById(int id);

		string GetSmallImageNameById(int id);

		int GetLastImageNumber();

		void CreateImage(ImageData image);
	}
}
